#include <iostream>
int func()
{

    std::cout << "函数执行\n";
    return 10;
}

template <typename t1, typename t2>
auto add(t1 a, t2 b) -> decltype(a + b)
{
    return a + b;
}
int main()
{ /*&，const是特殊属性*/
    /*1.不需要初始化项*/
    /*2.表达式的值是左值，推导出引用，右值推导出变量*/
    /*3.可以推导特殊属性*/
    /*4.推导函数的返回值*/
    int a = 10;
    // int &b = 20;
    // decltype(b) c;
    // auto d = b;
    decltype(func()) e; /*只推导不运行函数*/
    char *s = "hello";
    std::string y = "world";
    auto x = add(s, y);
    std::cout << "x = " << x << std::endl;
    return 0;
}